package forms;

import beans.Note;
import dao.NoteDAO;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;

public class SaisirNoteForm {
    private final static String CHAMP_UTILISATEUR="utilisateur";
    private final static String CHAMP_EXAMEN="examen";
    private final static String CHAMP_NOTE="note";
    private NoteDAO noteDAO;
    
    private String              resultat;
    private Map<String, String> erreurs          = new HashMap<String, String>();
    
    public SaisirNoteForm(NoteDAO noteDAO) {
        this.noteDAO=noteDAO;
    }
    
     public void enregistrerNotes(HttpServletRequest request ){
        Integer idexam=Integer.parseInt(request.getParameter(CHAMP_EXAMEN));
        Note note=new Note();
        Enumeration nomsParam=request.getParameterNames();
        
        while(nomsParam.hasMoreElements()){
            String nomParam =(String) nomsParam.nextElement();
            if (isNote(nomParam)){
                String valueParam=(String)request.getParameter(nomParam);  
                note.setExamen(idexam);
                note.setEtudiant(getIdUtilisateur(nomParam));
                note.setNote(Float.parseFloat(valueParam));
                if ( erreurs.isEmpty() ) {
                    noteDAO.ajouterNote(note);
                    resultat = "Les notes ont été attribuées avec succès.";
                } else {
                    resultat = "Echec de l'attribution des notes, veuillez recommencer.";
                }
                
           }
        }        
    }
    
    private boolean isNote(String nomParam){
       boolean isNote=false;
       if (nomParam.substring(0, 5).equals("note_")){
           isNote=true;
       }
        return isNote;
    }
            
    // Récupère l'id utilisateur dans le nom du paramètre   
    private static Integer getIdUtilisateur(String nomParam){
        String id=nomParam.substring(5);
        System.out.print(id);
        return Integer.parseInt(id);
    }
    
 
 
 
    
 

 
    
 
   
 
    
}
